package com.cy.pj.common.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cy.pj.sys.pojo.JsonResult;

/**
 * @ControllerAdivce 注解描述的类为 spring web(MVC)
 * 控制层的一个全局异常处理对象，当控制层出现异常以后，首先会检测到控制层类中是否有异常处理方法
 * 假如没有或者不能处理异常则会查找是否有@ControllerAdivce注解描述的类，然后检测
 * 全局异常处理中是否有合适的异常处理方法，假如有则直接调用此方法
 * 为什么要使用全局异常处理
 * @author Administrator
 *
 */
@Controller
public class GlobalExceptionHandler {
	/**
	 * @ExceptionHandler 注解描述的方法的一个异常处理方法，注解中定义的异常类型
	 * 为当前方法的可以处理的异常处理类型（当然也可以处理异常类型的子类型）
	 * 在异常处理方法中通常会定义一个异常参数，来接收异常对象
	 * @param e
	 * @return
	 */
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public JsonResult doHandleRuntimeException(RuntimeException e) {
	System.out.println("GlobalExceptionHandler.doHandleRuntimeException");
	e.printStackTrace();
	//
	return new JsonResult(e);
	
}
}
